package com.ysq.www.api.work.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ysq.www.api.work.entity.Synergy;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ysq.www.common.result.ResultMsg;

/**
 * <p>
 * 协同办公表 服务类
 * </p>
 *
 * @author dql
 * @since 2020-08-11
 */
public interface ISynergyService extends IService<Synergy> {

    /**
     * 提交协同办公
     * @param synergy 协同办公对象
     * @return
     */
    ResultMsg addSynergy(Synergy synergy);

    /**
     * 查询我的已发起的协同代办
     * @param userId 用户id
     * @param pageNumber 页码
     * @param pageSize 页大小
     * @param time 日期
     * @return
     */
    IPage<Synergy> selectSponsorById(Integer userId, Integer pageNumber, Integer pageSize, String time);

    /**
     * 查询待处理协同代办
     * @param userId 用户id（审批者id）
     * @param pageNumber 页码
     * @param pageSize 页大小
     * @param time 日期
     * @return
     */
    IPage<Synergy> selectByCheckId(Integer userId, Integer pageNumber, Integer pageSize, String time);

    /**
     * 查询已处理协同代办
     * @param userId 审批人id
     * @param pageNumber 页码
     * @param pageSize 页大小
     * @param time 日期
     * @return
     */
    IPage<Synergy> selectDisposeById(Integer userId, Integer pageNumber, Integer pageSize, String time);

    /**
     * 查询抄送我协同代办
     * @param userId 用户id
     * @param pageNumber 页码
     * @param pageSize 页大小
     * @param time 日期
     * @return
     */
    IPage<Synergy> selectCopyToMe(Integer userId, Integer pageNumber, Integer pageSize, String time);

    /**
     * 根据id查询已发起详情
     * @param syId
     * @return
     */
    Synergy selectDetailById(Integer syId);

    /**
     * 根据id查询待处理详情
     * @param syId
     * @return
     */
    Synergy selectPendingById(Integer syId);

    /**
     * 根据id撤销协同办公
     * @param syId 协同办公id
     * @return
     */
    ResultMsg repealSynergyById(Integer syId);

    /**
     * 处理协同办公请求
     * @param syId 协同办公id
     * @param result 处理结果：1通过，2驳回
     * @return
     */
    ResultMsg disposeSynergyById(Integer syId, Integer result);
}
